﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SksApp
{
    public partial class KasiyerTanitimView : BaseView
    {
        public KasiyerTanitimView()
        {
            InitializeComponent();
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {
            this.Dispose();
            Event.Invoke(null, null);
        }

        private void Liste()
        {
            using (SksEntity ent = new SksEntity())
            {
                listBox1.DataSource = ent.Kasiyerler.ToList();
            }
        }

        private void KasiyerTanitimView_Load(object sender, EventArgs e)
        {
            Liste();
            using (SksEntity ent = new SksEntity())
            {
                cmbMagaza.DataSource = ent.Magazalar.ToList();
            }
        }

        private void btnKaydet_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtNo.Text) && !string.IsNullOrEmpty(txtAdiSoyadi.Text) && cmbMagaza.SelectedIndex > -1)
            {
                using (SksEntity ent = new SksEntity())
                {
                    int? id = ent.Kasiyerler.Where(x => x.Sifresi == txtSifre.Text).Select(x => (int?)x.ID).FirstOrDefault();
                    int no = txtNo.Text.ToInt();
                    var ks = ent.Kasiyerler.Where(x => x.No == no).FirstOrDefault();
                    if (ks != null && ks.ID == id)
                    {
                        ks.MagazaID = ((Magaza)cmbMagaza.SelectedItem).ID;
                        ks.Adi = txtAdiSoyadi.Text;
                        ks.SablonID = -1;
                        ks.Sifresi = txtSifre.Text;
                    }
                    else
                    {
                        if (id.HasValue)
                        {
                            MsgBox.Show(MessageStyle.Uyari, "Dikkat", "Bu şifre daha önce kullanılmış !");
                        }
                        else
                        {
                            ks = new Kasiyer();
                            ks.No = txtNo.Text.ToInt();
                            ks.MagazaID = ((Magaza)cmbMagaza.SelectedItem).ID;
                            ks.Adi = txtAdiSoyadi.Text;
                            ks.SablonID = -1;
                            ks.Sifresi = txtSifre.Text;
                            ent.Kasiyerler.Add(ks);
                        }
                    }
                    ent.SaveChanges();
                }
                Liste();
            }
        }

        private void btnSil_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtNo.Text) && !string.IsNullOrEmpty(txtAdiSoyadi.Text) && cmbMagaza.SelectedIndex > -1)
            {
                using (SksEntity ent = new SksEntity())
                {
                    int no = txtNo.Text.ToInt();
                    var ks = ent.Kasiyerler.Where(x => x.No == no).FirstOrDefault();
                    if (ks != null)
                    {
                        ent.Kasiyerler.Remove(ks);
                    }
                    ent.SaveChanges();
                }
                Liste();
            }
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listBox1.SelectedIndex > -1)
            {
                Kasiyer ks = (Kasiyer)listBox1.SelectedItem;
                txtAdiSoyadi.Text = ks.Adi;
                txtNo.Text = ks.No.ToString();
                txtSifre.Text = ks.Sifresi;
                for (int i = 0; i < cmbMagaza.Items.Count; i++)
                {
                    if (((Magaza)cmbMagaza.Items[i]).ID == ks.MagazaID)
                    {
                        cmbMagaza.SelectedIndex = i;
                        break;
                    }
                }
            }
        }
    }
}
